home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / fix-11.zip / FIX-11 next >
Text File  |  1993-01-27  |  28KB  |  998 lines

  1.               Release 5 Public Patch #11
  2.                MIT X Consortium
  3.  
  4. To apply this patch:
  5.  
  6. cd to the top of the source tree (to the directory containing the "mit"
  7. and "contrib" subdirectories) and do:
  8.     patch -p -s < ThisFile
  9. Patch will work silently unless an error occurs.
  10. If you want to watch patch do its thing, leave out the "-s" argument to patch.
  11.  
  12. Finally, to rebuild after applying this patch, cd to the "mit" subdirectory
  13. and do:
  14.     make -k >& make.log
  15.  
  16.  
  17. Brief notes on what this patch fixes:
  18.  
  19. config: make on SunOS 4.1.2 fails unless tree previously built in
  20. Xt: error in merging translations and accelerators
  21. Xt: code supporting display of translations can write out of bounds
  22. Xt: XtDisplayInstalledAccelerators action proc fails
  23. Xmu: XmuCvtStringToCursor fails for fontname/glyph index
  24. Xmu: XmuCvtStringToCursor passes an incorrect size to Xt
  25. server: (DE)ALLOCATE_LOCAL stack order consistency
  26. server: miZeroArcPts can overwrite memory, crash server
  27. xdm: crashes when X terminal without a name connects
  28. xdm: case-sensitive matching done on hostnames
  29. xdm: InitGreet "if" statement needs braces
  30. xdm: typo of a macroname for default userAuthDir 
  31. xrdb: screen-specific resources selected on tag only
  32. xterm: keyboard grabbing does not work consistently
  33. util: GNU make dies in util/scripts because it can't make makedepend
  34. util: unquoted pathname containing cpp symbol in Imakefile gets munged
  35.  
  36.  
  37. Prereq: public-patch-10
  38.  
  39. *** /tmp/,RCSt1a18020    Fri Apr 24 13:00:14 1992
  40. --- mit/bug-report    Fri Apr 24 12:15:47 1992
  41. ***************
  42. *** 2,8 ****
  43.   Subject: [area]: [synopsis]   [replace with actual area and short description]
  44.   
  45.   VERSION:
  46. !     R5, public-patch-10
  47.       [MIT public patches will edit this line to indicate the patch level]
  48.   
  49.   CLIENT MACHINE and OPERATING SYSTEM:
  50. --- 2,8 ----
  51.   Subject: [area]: [synopsis]   [replace with actual area and short description]
  52.   
  53.   VERSION:
  54. !     R5, public-patch-11
  55.       [MIT public patches will edit this line to indicate the patch level]
  56.   
  57.   CLIENT MACHINE and OPERATING SYSTEM:
  58. *** /tmp/da19157    Fri Apr 24 13:53:34 1992
  59. --- mit/config/Library.tmpl    Fri Apr 24 13:53:33 1992
  60. ***************
  61. *** 6,12 ****
  62.    * DoNormalLib, DoSharedLib, DoDebugLib, DoProfileLib
  63.    */
  64.   
  65. ! XCOMM $XConsortium: Library.tmpl,v 1.11 91/07/27 13:10:13 rws Exp $
  66.   
  67.   #ifndef LibraryCcCmd
  68.   #if DoSharedLib && defined(SharedLibraryCcCmd)
  69. --- 6,12 ----
  70.    * DoNormalLib, DoSharedLib, DoDebugLib, DoProfileLib
  71.    */
  72.   
  73. ! XCOMM $XConsortium: Library.tmpl,v 1.12 92/03/20 15:05:19 rws Exp $
  74.   
  75.   #ifndef LibraryCcCmd
  76.   #if DoSharedLib && defined(SharedLibraryCcCmd)
  77. ***************
  78. *** 79,84 ****
  79. --- 79,89 ----
  80.   #ifndef LibraryObjectRule
  81.   #define LibraryObjectRule()                        @@\
  82.   all::                                    @@\
  83. +     _DebuggedLibMkdir()                        @@\
  84. +     _ProfiledLibMkdir()                        @@\
  85. +     _SharedLibMkdir()                        @@\
  86. +                                     @@\
  87. + includes::                                @@\
  88.       _DebuggedLibMkdir()                        @@\
  89.       _ProfiledLibMkdir()                        @@\
  90.       _SharedLibMkdir()                        @@\
  91. *** /tmp/da19179    Fri Apr 24 13:53:37 1992
  92. --- mit/lib/Xt/TMstate.c    Fri Apr 24 13:53:36 1992
  93. ***************
  94. *** 1,4 ****
  95. ! /* $XConsortium: TMstate.c,v 1.161 92/02/27 17:04:04 converse Exp $ */
  96.   /*LINTLIBRARY*/
  97.   
  98.   /***********************************************************
  99. --- 1,4 ----
  100. ! /* $XConsortium: TMstate.c,v 1.162 92/03/25 16:47:39 converse Exp $ */
  101.   /*LINTLIBRARY*/
  102.   
  103.   /***********************************************************
  104. ***************
  105. *** 865,871 ****
  106.           if (MatchIncomingEvent(curEventPtr, typeMatch, modMatch))
  107.             {
  108.             if (candState->actions) {
  109. -               PushContext(contextPtr, candState);
  110.                 return candState;
  111.             }
  112.             else
  113. --- 865,870 ----
  114. ***************
  115. *** 894,902 ****
  116.               
  117.               if ((tmRecPtr->lastEventTime + delta) >= time) {
  118.                   if (nextState->actions) {
  119. !                 PushContext(contextPtr, candState);
  120. !                 PushContext(contextPtr, nextState);
  121. !                 return nextState;
  122.                   }
  123.                   else
  124.                     matchState = candState;
  125. --- 893,899 ----
  126.               
  127.               if ((tmRecPtr->lastEventTime + delta) >= time) {
  128.                   if (nextState->actions) {
  129. !                 return candState;
  130.                   }
  131.                   else
  132.                     matchState = candState;
  133. ***************
  134. *** 906,919 ****
  135.           }
  136.       }
  137.       }
  138. -     if (matchState) {
  139. -     typeMatch = TMGetTypeMatch(matchState->typeIndex);
  140. -     if (typeMatch->eventType == _XtEventTimerEventType) {
  141. -         PushContext(contextPtr, matchState);
  142. -         matchState = matchState->nextLevel;
  143. -     }
  144. -     PushContext(contextPtr, matchState);
  145. -     }
  146.       return matchState;
  147.   }
  148.   
  149. --- 903,908 ----
  150. ***************
  151. *** 924,931 ****
  152.   {
  153.       XtTranslations     xlations = tmRecPtr->translations;
  154.       TMContext        *contextPtr = GetContextPtr(tmRecPtr);
  155. !     TMShortCard        i;
  156. !     StatePtr        candState;
  157.       TMComplexStateTree     *stateTreePtr = 
  158.         (TMComplexStateTree *)&xlations->stateTreeTbl[0];
  159.       
  160. --- 913,920 ----
  161.   {
  162.       XtTranslations     xlations = tmRecPtr->translations;
  163.       TMContext        *contextPtr = GetContextPtr(tmRecPtr);
  164. !     TMShortCard        i, matchTreeIndex;
  165. !     StatePtr        matchState = NULL, candState;
  166.       TMComplexStateTree     *stateTreePtr = 
  167.         (TMComplexStateTree *)&xlations->stateTreeTbl[0];
  168.       
  169. ***************
  170. *** 939,949 ****
  171.       if (((*stateTreePtr)->isSimple == False) &&
  172.           (candState = TryCurrentTree(stateTreePtr,
  173.                          tmRecPtr,
  174. !                        curEventPtr)))
  175. !       break;
  176.       }
  177. !     if (candState == NULL){
  178.       /* couldn't find it... */
  179.       if (!Ignore(curEventPtr))
  180.         {
  181. --- 928,941 ----
  182.       if (((*stateTreePtr)->isSimple == False) &&
  183.           (candState = TryCurrentTree(stateTreePtr,
  184.                          tmRecPtr,
  185. !                        curEventPtr))) {
  186. !         matchTreeIndex = i;
  187. !         matchState = candState;
  188. !         if (candState->actions)
  189. !           break;
  190. !     }
  191.       }
  192. !     if (matchState == NULL){
  193.       /* couldn't find it... */
  194.       if (!Ignore(curEventPtr))
  195.         {
  196. ***************
  197. *** 955,981 ****
  198.       TMBindData    bindData = (TMBindData) tmRecPtr->proc_table;
  199.       XtActionProc    *procs;
  200.       Widget        accelWidget;
  201.       
  202.       tmRecPtr->lastEventTime = GetTime (tmRecPtr, curEventPtr->xev);
  203.   
  204.       if (bindData->simple.isComplex) {
  205.           TMComplexBindProcs bindProcs =
  206. !           TMGetComplexBindEntry(bindData, i);
  207.           procs = bindProcs->procs;
  208.           accelWidget = bindProcs->widget;
  209.       }
  210.       else {
  211.           TMSimpleBindProcs bindProcs = 
  212. !           TMGetSimpleBindEntry(bindData, i);
  213.           procs = bindProcs->procs;
  214.           accelWidget = NULL;
  215.       }
  216.       HandleActions(w, 
  217.                 curEventPtr->xev, 
  218. !               (TMSimpleStateTree)*stateTreePtr,
  219.                 accelWidget,
  220.                 procs,
  221. !               candState->actions);
  222.       }
  223.   }
  224.   
  225. --- 947,982 ----
  226.       TMBindData    bindData = (TMBindData) tmRecPtr->proc_table;
  227.       XtActionProc    *procs;
  228.       Widget        accelWidget;
  229. +     TMTypeMatch     typeMatch;
  230.       
  231. +     typeMatch  = TMGetTypeMatch(matchState->typeIndex);
  232. +     PushContext(contextPtr, matchState);
  233. +     if (typeMatch->eventType == _XtEventTimerEventType) {
  234. +         matchState = matchState->nextLevel;
  235. +         PushContext(contextPtr, matchState);
  236. +     }
  237.       tmRecPtr->lastEventTime = GetTime (tmRecPtr, curEventPtr->xev);
  238.   
  239.       if (bindData->simple.isComplex) {
  240.           TMComplexBindProcs bindProcs =
  241. !           TMGetComplexBindEntry(bindData, matchTreeIndex);
  242.           procs = bindProcs->procs;
  243.           accelWidget = bindProcs->widget;
  244.       }
  245.       else {
  246.           TMSimpleBindProcs bindProcs = 
  247. !           TMGetSimpleBindEntry(bindData, matchTreeIndex);
  248.           procs = bindProcs->procs;
  249.           accelWidget = NULL;
  250.       }
  251.       HandleActions(w, 
  252.                 curEventPtr->xev, 
  253. !               (TMSimpleStateTree)
  254. !               xlations->stateTreeTbl[matchTreeIndex],
  255.                 accelWidget,
  256.                 procs,
  257. !               matchState->actions);
  258.       }
  259.   }
  260.   
  261. *** /tmp/da19201    Fri Apr 24 13:53:39 1992
  262. --- mit/lib/Xt/TMprint.c    Fri Apr 24 13:53:39 1992
  263. ***************
  264. *** 1,4 ****
  265. ! /* $XConsortium: TMprint.c,v 1.7 91/06/26 18:25:51 converse Exp $ */
  266.   /*LINTLIBRARY*/
  267.   
  268.   /***********************************************************
  269. --- 1,4 ----
  270. ! /* $XConsortium: TMprint.c,v 1.9 92/04/03 15:45:50 converse Exp $ */
  271.   /*LINTLIBRARY*/
  272.   
  273.   /***********************************************************
  274. ***************
  275. *** 88,100 ****
  276. --- 88,103 ----
  277.       PRINTMOD(ControlMask, "Ctrl");    /* name is not CtrlMask... */
  278.       PRINTMOD(LockMask, "Lock");
  279.       PRINTMOD(Mod1Mask, "Mod1");
  280. +     CHECK_STR_OVERFLOW(sb);
  281.       PRINTMOD(Mod2Mask, "Mod2");
  282.       PRINTMOD(Mod3Mask, "Mod3");
  283.       PRINTMOD(Mod4Mask, "Mod4");
  284.       PRINTMOD(Mod5Mask, "Mod5");
  285. +     CHECK_STR_OVERFLOW(sb);
  286.       PRINTMOD(Button1Mask, "Button1");
  287.       PRINTMOD(Button2Mask, "Button2");
  288.       PRINTMOD(Button3Mask, "Button3");
  289. +     CHECK_STR_OVERFLOW(sb);
  290.       PRINTMOD(Button4Mask, "Button4");
  291.       PRINTMOD(Button5Mask, "Button5");
  292.   
  293. ***************
  294. *** 630,636 ****
  295.       PrintRec        *prints;
  296.       TMStringBufRec    sbRec, *sb = &sbRec;
  297.       TMShortCard        numPrints, maxPrints;
  298.       if (xlations == NULL) return NULL;
  299.   
  300.       sb->current = sb->start = XtMalloc((Cardinal)1000);
  301. --- 633,642 ----
  302.       PrintRec        *prints;
  303.       TMStringBufRec    sbRec, *sb = &sbRec;
  304.       TMShortCard        numPrints, maxPrints;
  305. ! #ifdef TRACE_TM
  306. !     TMBindData        bindData = (TMBindData)w->core.tm.proc_table;
  307. !     Boolean        hasAccel = (accelWidget ? True : False);
  308. ! #endif /* TRACE_TM */
  309.       if (xlations == NULL) return NULL;
  310.   
  311.       sb->current = sb->start = XtMalloc((Cardinal)1000);
  312. ***************
  313. *** 651,657 ****
  314.         xlations->stateTreeTbl[prints[i].tIndex];
  315.       TMBranchHead branchHead = 
  316.         &stateTree->branchHeadTbl[prints[i].bIndex];
  317. !     
  318.       PrintState(sb, (TMStateTree)stateTree, branchHead,
  319.              includeRHS, accelWidget, XtDisplay(w));
  320.       }
  321. --- 657,673 ----
  322.         xlations->stateTreeTbl[prints[i].tIndex];
  323.       TMBranchHead branchHead = 
  324.         &stateTree->branchHeadTbl[prints[i].bIndex];
  325. ! #ifdef TRACE_TM    
  326. !     TMComplexBindProcs    complexBindProcs;
  327. !     if (hasAccel == False) {
  328. !         accelWidget = NULL;
  329. !         if (bindData->simple.isComplex) {
  330. !         complexBindProcs = TMGetComplexBindEntry(bindData, 0);
  331. !         accelWidget = complexBindProcs[prints[i].tIndex].widget;
  332. !         }
  333. !     }
  334. ! #endif /* TRACE_TM */
  335.       PrintState(sb, (TMStateTree)stateTree, branchHead,
  336.              includeRHS, accelWidget, XtDisplay(w));
  337.       }
  338. ***************
  339. *** 712,718 ****
  340.       PrintRec        stackPrints[STACKPRINTSIZE];
  341.       PrintRec        *prints;
  342.       TMShortCard        numPrints, maxPrints;
  343. !     TMBindData        bindData = (TMBindData)widget->core.tm.proc_table;
  344.       TMComplexBindProcs    complexBindProcs;
  345.   
  346.       if ((eventWidget == NULL) ||
  347. --- 728,734 ----
  348.       PrintRec        stackPrints[STACKPRINTSIZE];
  349.       PrintRec        *prints;
  350.       TMShortCard        numPrints, maxPrints;
  351. !     TMBindData    bindData = (TMBindData) eventWidget->core.tm.proc_table;
  352.       TMComplexBindProcs    complexBindProcs;
  353.   
  354.       if ((eventWidget == NULL) ||
  355. ***************
  356. *** 721,726 ****
  357. --- 737,743 ----
  358.         return;
  359.   
  360.       sb->current = sb->start = XtMalloc((Cardinal)1000);
  361. +     sb->start[0] = '\0';
  362.       sb->max = 1000;
  363.       maxPrints = 0;
  364.       for (i = 0; i < xlations->numStateTrees; i++)
  365. ***************
  366. *** 735,741 ****
  367.       for (i = 0;
  368.        i < xlations->numStateTrees;
  369.        i++, complexBindProcs++) {
  370. !     if (complexBindProcs->widget == eventWidget)
  371.         {
  372.             ProcessStateTree(prints, xlations, i, &numPrints);
  373.         }
  374. --- 752,758 ----
  375.       for (i = 0;
  376.        i < xlations->numStateTrees;
  377.        i++, complexBindProcs++) {
  378. !     if (complexBindProcs->widget)
  379.         {
  380.             ProcessStateTree(prints, xlations, i, &numPrints);
  381.         }
  382. ***************
  383. *** 745,753 ****
  384.         xlations->stateTreeTbl[prints[i].tIndex];
  385.       TMBranchHead branchHead = 
  386.         &stateTree->branchHeadTbl[prints[i].bIndex];
  387.       
  388. !     PrintState(sb, (TMStateTree)stateTree, branchHead,
  389. !            True, widget, XtDisplay(widget));
  390.       }
  391.       XtStackFree((XtPointer)prints, (XtPointer)stackPrints);
  392.       printf("%s\n", sb->start);
  393. --- 762,773 ----
  394.         xlations->stateTreeTbl[prints[i].tIndex];
  395.       TMBranchHead branchHead = 
  396.         &stateTree->branchHeadTbl[prints[i].bIndex];
  397. +     complexBindProcs = TMGetComplexBindEntry(bindData, 0);
  398.       
  399. !     PrintState(sb, (TMStateTree)stateTree, branchHead, True, 
  400. !            complexBindProcs[prints[i].tIndex].widget, 
  401. !            XtDisplay(widget));
  402.       }
  403.       XtStackFree((XtPointer)prints, (XtPointer)stackPrints);
  404.       printf("%s\n", sb->start);
  405. *** /tmp/da19223    Fri Apr 24 13:53:42 1992
  406. --- mit/lib/Xmu/StrToCurs.c    Fri Apr 24 13:53:41 1992
  407. ***************
  408. *** 1,4 ****
  409. ! /* $XConsortium: StrToCurs.c,v 1.16 91/07/25 17:48:36 converse Exp $ */
  410.   
  411.   /***********************************************************
  412.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  413. --- 1,4 ----
  414. ! /* $XConsortium: StrToCurs.c,v 1.19 92/03/19 15:22:29 converse Exp $ */
  415.   
  416.   /***********************************************************
  417.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  418. ***************
  419. *** 24,31 ****
  420.   
  421.   ******************************************************************/
  422.   
  423. ! #include    <X11/IntrinsicP.h>    /* 'cause CoreP.h needs it */
  424. ! #include    <X11/CoreP.h>        /* just to do XtConvert() */
  425.   #include    <X11/StringDefs.h>
  426.   #include    <X11/Xmu/Converters.h>
  427.   #include    <X11/Xmu/Drawing.h>
  428. --- 24,30 ----
  429.   
  430.   ******************************************************************/
  431.   
  432. ! #include    <X11/Intrinsic.h>
  433.   #include    <X11/StringDefs.h>
  434.   #include    <X11/Xmu/Converters.h>
  435.   #include    <X11/Xmu/Drawing.h>
  436. ***************
  437. *** 41,53 ****
  438. --- 40,63 ----
  439.   #endif /* X_NOT_POSIX */
  440.   #ifndef PATH_MAX
  441.   #include <sys/param.h>
  442. + #ifndef PATH_MAX
  443.   #ifdef MAXPATHLEN
  444.   #define PATH_MAX MAXPATHLEN
  445.   #else
  446.   #define PATH_MAX 1024
  447.   #endif
  448. + #endif
  449.   #endif /* PATH_MAX */
  450.   
  451. + /* Kludge source to avoid encountering broken shared library linkers
  452. +    which insist on resolving references unused by the application,
  453. +    and broken object file formats that don't correctly distinguish
  454. +    references to procedures from references to data.
  455. +  */
  456. + #if defined(SUNSHLIB) || defined(SVR4)
  457. + #define XMU_KLUDGE
  458. + #endif
  459.   /*
  460.    * XmuConvertStringToCursor:
  461.    *
  462. ***************
  463. *** 107,115 ****
  464.       if (0 == strncmp(FONTSPECIFIER, name, strlen(FONTSPECIFIER))) {
  465.       char source_name[PATH_MAX], mask_name[PATH_MAX];
  466.       int source_char, mask_char, fields;
  467. -     WidgetRec widgetRec;
  468.       Font source_font, mask_font;
  469.       XrmValue fromString, toFont;
  470.   
  471.       fields = sscanf(name, "FONT %s %d %s %d",
  472.               source_name, &source_char,
  473. --- 117,130 ----
  474.       if (0 == strncmp(FONTSPECIFIER, name, strlen(FONTSPECIFIER))) {
  475.       char source_name[PATH_MAX], mask_name[PATH_MAX];
  476.       int source_char, mask_char, fields;
  477.       Font source_font, mask_font;
  478.       XrmValue fromString, toFont;
  479. +     XrmValue cvtArg;
  480. +     Boolean success;
  481. +     Display *dpy = DisplayOfScreen(screen);
  482. + #ifdef XMU_KLUDGE
  483. +     Cardinal num;
  484. + #endif
  485.   
  486.       fields = sscanf(name, "FONT %s %d %s %d",
  487.               source_name, &source_char,
  488. ***************
  489. *** 119,135 ****
  490.           return;
  491.       }
  492.   
  493. -     /* widgetRec is stupid; we should just use XtDirectConvert,
  494. -      * but the names in Xt/Converters aren't public. */
  495. -     widgetRec.core.screen = screen;
  496.       fromString.addr = source_name;
  497. !     fromString.size = strlen(source_name);
  498. !     XtConvert(&widgetRec, XtRString, &fromString, XtRFont, &toFont);
  499. !     if (toFont.addr == NULL) {
  500.           XtStringConversionWarning(name, XtRCursor);
  501.           return;
  502.       }
  503. -     source_font = *(Font*)toFont.addr;
  504.   
  505.       switch (fields) {
  506.         case 2:        /* defaulted mask font & char */
  507. --- 134,159 ----
  508.           return;
  509.       }
  510.   
  511.       fromString.addr = source_name;
  512. !     fromString.size = strlen(source_name) + 1;
  513. !     toFont.addr = (XPointer) &source_font;
  514. !     toFont.size = sizeof(Font);
  515. !     cvtArg.addr = (XPointer) &dpy;
  516. !     cvtArg.size = sizeof(Display *);
  517. !     /* XXX using display of screen argument as message display */
  518. ! #ifdef XMU_KLUDGE
  519. !     /* XXX Sacrifice caching */
  520. !     num = 1;
  521. !     success = XtCvtStringToFont(dpy, &cvtArg, &num, &fromString, &toFont,
  522. !                     NULL);
  523. ! #else
  524. !     success = XtCallConverter(dpy, XtCvtStringToFont, &cvtArg,
  525. !                   (Cardinal)1, &fromString, &toFont, NULL);
  526. ! #endif
  527. !     if (!success) {
  528.           XtStringConversionWarning(name, XtRCursor);
  529.           return;
  530.       }
  531.   
  532.       switch (fields) {
  533.         case 2:        /* defaulted mask font & char */
  534. ***************
  535. *** 144,156 ****
  536.   
  537.         case 4:        /* specified mask font & char */
  538.           fromString.addr = mask_name;
  539. !         fromString.size = strlen(mask_name);
  540. !         XtConvert(&widgetRec, XtRString, &fromString, XtRFont, &toFont);
  541. !         if (toFont.addr == NULL) {
  542.           XtStringConversionWarning(name, XtRCursor);
  543.           return;
  544.           }
  545. -         mask_font = *(Font*)toFont.addr;
  546.       }
  547.   
  548.       cursor = XCreateGlyphCursor( DisplayOfScreen(screen), source_font,
  549. --- 168,190 ----
  550.   
  551.         case 4:        /* specified mask font & char */
  552.           fromString.addr = mask_name;
  553. !         fromString.size = strlen(mask_name) + 1;
  554. !         toFont.addr = (XPointer) &mask_font;
  555. !         toFont.size = sizeof(Font);
  556. !         /* XXX using display of screen argument as message display */
  557. ! #ifdef XMU_KLUDGE
  558. !         /* XXX Sacrifice caching */
  559. !         num = 1;
  560. !         success = XtCvtStringToFont(dpy, &cvtArg, &num, &fromString,
  561. !                     &toFont, NULL);
  562. ! #else
  563. !         success = XtCallConverter(dpy, XtCvtStringToFont, &cvtArg,
  564. !                       (Cardinal)1, &fromString, &toFont, NULL);
  565. ! #endif
  566. !         if (!success) {
  567.           XtStringConversionWarning(name, XtRCursor);
  568.           return;
  569.           }
  570.       }
  571.   
  572.       cursor = XCreateGlyphCursor( DisplayOfScreen(screen), source_font,
  573. *** /tmp/da19245    Fri Apr 24 13:53:44 1992
  574. --- mit/server/ddx/mi/mizerarc.c    Fri Apr 24 13:53:43 1992
  575. ***************
  576. *** 17,23 ****
  577.   
  578.   ********************************************************/
  579.   
  580. ! /* $XConsortium: mizerarc.c,v 5.31 91/09/21 19:38:21 rws Exp $ */
  581.   
  582.   /* Derived from:
  583.    * "Algorithm for drawing ellipses or hyperbolae with a digital plotter"
  584. --- 17,23 ----
  585.   
  586.   ********************************************************/
  587.   
  588. ! /* $XConsortium: mizerarc.c,v 5.33 92/04/21 19:05:01 rws Exp $ */
  589.   
  590.   /* Derived from:
  591.    * "Algorithm for drawing ellipses or hyperbolae with a digital plotter"
  592. ***************
  593. *** 370,375 ****
  594. --- 370,376 ----
  595.       /* kludge! */
  596.       info->initialMask |= info->end.mask;
  597.       info->initialMask |= info->initialMask << 1;
  598. +     info->end.x = 0;
  599.       info->end.mask = 0;
  600.       }
  601.       return FALSE;
  602. ***************
  603. *** 813,821 ****
  604.           }
  605.       }
  606.       }
  607.       if (dospans)
  608.       {
  609.       DEALLOCATE_LOCAL(widths);
  610.       }
  611. -     DEALLOCATE_LOCAL(points);
  612.   }
  613. --- 814,822 ----
  614.           }
  615.       }
  616.       }
  617. +     DEALLOCATE_LOCAL(points);
  618.       if (dospans)
  619.       {
  620.       DEALLOCATE_LOCAL(widths);
  621.       }
  622.   }
  623. *** /tmp/da19267    Fri Apr 24 13:53:46 1992
  624. --- mit/clients/xdm/access.c    Fri Apr 24 13:53:45 1992
  625. ***************
  626. *** 1,5 ****
  627.   /*
  628. !  * $XConsortium: access.c,v 1.11 91/07/18 19:29:00 rws Exp $
  629.    *
  630.    * Copyright 1990 Massachusetts Institute of Technology
  631.    *
  632. --- 1,5 ----
  633.   /*
  634. !  * $XConsortium: access.c,v 1.13 92/04/21 11:33:37 gildea Exp $
  635.    *
  636.    * Copyright 1990 Massachusetts Institute of Technology
  637.    *
  638. ***************
  639. *** 36,41 ****
  640. --- 36,42 ----
  641.   # include   <X11/Xdmcp.h>
  642.   # include   <X11/X.h>
  643.   # include   <stdio.h>
  644. + # include   <ctype.h>
  645.   # include   <netinet/in.h>
  646.   # include   <netdb.h>
  647.   # include   <sys/socket.h>
  648. ***************
  649. *** 472,477 ****
  650. --- 473,480 ----
  651.       return haveLocalhost;
  652.   }
  653.   
  654. + /* Returns non-0 iff string is matched by pattern.  Does case folding.
  655. +  */
  656.   static int
  657.   patternMatch (string, pattern)
  658.       char    *string, *pattern;
  659. ***************
  660. *** 478,483 ****
  661. --- 481,489 ----
  662.   {
  663.       int        p, s;
  664.   
  665. +     if (!string)
  666. +     string = "";
  667.       for (;;)
  668.       {
  669.       s = *string++;
  670. ***************
  671. *** 484,503 ****
  672.       switch (p = *pattern++) {
  673.       case '*':
  674.           if (!*pattern)
  675. !         return TRUE;
  676.           for (string--; *string; string++)
  677.           if (patternMatch (string, pattern))
  678.               return 1;
  679.           return 0;
  680.       case '?':
  681. !         if (s == 0)
  682.           return 0;
  683.           break;
  684.       case '\0':
  685. !         return s == 0;
  686.       case '\\':
  687.           p = *pattern++;
  688.       default:
  689.           if (p != s)
  690.           return 0;
  691.       }
  692. --- 490,512 ----
  693.       switch (p = *pattern++) {
  694.       case '*':
  695.           if (!*pattern)
  696. !         return 1;
  697.           for (string--; *string; string++)
  698.           if (patternMatch (string, pattern))
  699.               return 1;
  700.           return 0;
  701.       case '?':
  702. !         if (s == '\0')
  703.           return 0;
  704.           break;
  705.       case '\0':
  706. !         return s == '\0';
  707.       case '\\':
  708.           p = *pattern++;
  709. +         /* fall through */
  710.       default:
  711. +         if (isupper(p)) p = tolower(p);
  712. +         if (isupper(s)) s = tolower(s);
  713.           if (p != s)
  714.           return 0;
  715.       }
  716. *** /tmp/da19289    Fri Apr 24 13:53:49 1992
  717. --- mit/clients/xdm/xdmcp.c    Fri Apr 24 13:53:48 1992
  718. ***************
  719. *** 1,7 ****
  720.   /*
  721.    * xdm - display manager daemon
  722.    *
  723. !  * $XConsortium: xdmcp.c,v 1.3 91/07/18 18:57:22 gildea Exp $
  724.    *
  725.    * Copyright 1988 Massachusetts Institute of Technology
  726.    *
  727. --- 1,7 ----
  728.   /*
  729.    * xdm - display manager daemon
  730.    *
  731. !  * $XConsortium: xdmcp.c,v 1.6 92/03/24 10:30:37 gildea Exp $
  732.    *
  733.    * Copyright 1988 Massachusetts Institute of Technology
  734.    *
  735. ***************
  736. *** 269,274 ****
  737. --- 269,276 ----
  738.       *type = family;
  739.   }
  740.   
  741. + /* computes an X display name */
  742.   static char *
  743.   NetworkAddressToName(connectionType, connectionAddress, displayNumber)
  744.       CARD16    connectionType;
  745. ***************
  746. *** 285,291 ****
  747.           char        *localhost, *localHostname();
  748.   
  749.           data = connectionAddress->data;
  750. !         hostent = gethostbyaddr (data,
  751.                        connectionAddress->length, AF_INET);
  752.   
  753.           localhost = localHostname ();
  754. --- 287,293 ----
  755.           char        *localhost, *localHostname();
  756.   
  757.           data = connectionAddress->data;
  758. !         hostent = gethostbyaddr ((char *)data,
  759.                        connectionAddress->length, AF_INET);
  760.   
  761.           localhost = localHostname ();
  762. ***************
  763. *** 1034,1048 ****
  764.       case FamilyInternet:
  765.       {
  766.           struct hostent    *hostent;
  767.   
  768. !         hostent = gethostbyaddr (connectionAddress->data,
  769.                        connectionAddress->length, AF_INET);
  770.   
  771. !         if (!hostent)
  772.           break;
  773. !         if (!getString (name, strlen (hostent->h_name)))
  774. !         break;
  775. !         strcpy (name, hostent->h_name);
  776.           break;
  777.       }
  778.   #ifdef DNET
  779. --- 1036,1061 ----
  780.       case FamilyInternet:
  781.       {
  782.           struct hostent    *hostent;
  783. +         char dotted[20];
  784. +         char *local_name;
  785.   
  786. !         hostent = gethostbyaddr ((char *)connectionAddress->data,
  787.                        connectionAddress->length, AF_INET);
  788.   
  789. !         if (hostent)
  790. !         local_name = hostent->h_name;
  791. !         else {
  792. !         /* can't get name, so use emergency fallback */
  793. !         sprintf(dotted, "%d.%d.%d.%d",
  794. !             connectionAddress->data[0],
  795. !             connectionAddress->data[1],
  796. !             connectionAddress->data[2],
  797. !             connectionAddress->data[3]);
  798. !         local_name = dotted;
  799. !         }
  800. !         if (!getString (name, strlen (local_name)))
  801.           break;
  802. !         strcpy (name, local_name);
  803.           break;
  804.       }
  805.   #ifdef DNET
  806. *** /tmp/da19311    Fri Apr 24 13:53:51 1992
  807. --- mit/clients/xdm/greet.c    Fri Apr 24 13:53:51 1992
  808. ***************
  809. *** 1,7 ****
  810.   /*
  811.    * xdm - display manager daemon
  812.    *
  813. !  * $XConsortium: greet.c,v 1.29 91/04/02 11:58:51 rws Exp $
  814.    *
  815.    * Copyright 1988 Massachusetts Institute of Technology
  816.    *
  817. --- 1,7 ----
  818.   /*
  819.    * xdm - display manager daemon
  820.    *
  821. !  * $XConsortium: greet.c,v 1.30 92/04/15 10:52:33 rws Exp $
  822.    *
  823.    * Copyright 1988 Massachusetts Institute of Technology
  824.    *
  825. ***************
  826. *** 127,133 ****
  827. --- 127,135 ----
  828.       i = 0;
  829.       XtSetArg (arglist[i], XtNnotifyDone, GreetDone); i++;
  830.       if (!d->authorize || d->authorizations || !d->authComplain)
  831. +     {
  832.       XtSetArg (arglist[i], XtNsecureSession, True); i++;
  833. +     }
  834.       login = XtCreateManagedWidget ("login", loginWidgetClass, toplevel,
  835.                       arglist, i);
  836.       XtRealizeWidget (toplevel);
  837. *** /tmp/da19333    Fri Apr 24 13:53:53 1992
  838. --- mit/clients/xdm/resource.c    Fri Apr 24 13:53:52 1992
  839. ***************
  840. *** 1,7 ****
  841.   /*
  842.    * xdm - display manager daemon
  843.    *
  844. !  * $XConsortium: resource.c,v 1.44 91/07/24 00:06:52 keith Exp $
  845.    *
  846.    * Copyright 1988 Massachusetts Institute of Technology
  847.    *
  848. --- 1,7 ----
  849.   /*
  850.    * xdm - display manager daemon
  851.    *
  852. !  * $XConsortium: resource.c,v 1.45 92/04/15 11:12:41 rws Exp $
  853.    *
  854.    * Copyright 1988 Massachusetts Institute of Technology
  855.    *
  856. ***************
  857. *** 218,224 ****
  858.   "failsafeClient","FailsafeClient",    DM_STRING,    boffset(failsafeClient),
  859.                   DEF_FAILSAFE_CLIENT,
  860.   "userAuthDir",    "UserAuthDir",    DM_STRING,    boffset(userAuthDir),
  861. !                 DEF_AUTH_DIR,
  862.   "chooser",    "Chooser",    DM_STRING,    boffset(chooser),
  863.                   DEF_CHOOSER,
  864.   };
  865. --- 218,224 ----
  866.   "failsafeClient","FailsafeClient",    DM_STRING,    boffset(failsafeClient),
  867.                   DEF_FAILSAFE_CLIENT,
  868.   "userAuthDir",    "UserAuthDir",    DM_STRING,    boffset(userAuthDir),
  869. !                 DEF_USER_AUTH_DIR,
  870.   "chooser",    "Chooser",    DM_STRING,    boffset(chooser),
  871.                   DEF_CHOOSER,
  872.   };
  873. *** /tmp/da19355    Fri Apr 24 13:53:55 1992
  874. --- mit/clients/xrdb/xrdb.c    Fri Apr 24 13:53:54 1992
  875. ***************
  876. *** 1,7 ****
  877.   /*
  878.    * xrdb - X resource manager database utility
  879.    *
  880. !  * $XConsortium: xrdb.c,v 11.50 91/09/06 15:03:35 rws Exp $
  881.    */
  882.   
  883.   /*
  884. --- 1,7 ----
  885.   /*
  886.    * xrdb - X resource manager database utility
  887.    *
  888. !  * $XConsortium: xrdb.c,v 11.51 92/03/10 12:10:34 keith Exp $
  889.    */
  890.   
  891.   /*
  892. ***************
  893. *** 970,985 ****
  894.       int *hits;
  895.       register int i, j, k;
  896.       Entries cur, cmp;
  897. !     char *curtag;
  898.   
  899.       hits = (int *)malloc(num * sizeof(int));
  900.       cur = dbs[0];
  901.       for (i = 0; i < cur.used; i++) {
  902.       curtag = cur.entry[i].tag;
  903.       for (j = 1; j < num; j++) {
  904.           cmp = dbs[j];
  905.           for (k = 0; k < cmp.used; k++) {
  906. !         if (cmp.entry[k].usable && !strcmp(curtag, cmp.entry[k].tag)) {
  907.               hits[j] = k;
  908.               break;
  909.           }
  910. --- 970,989 ----
  911.       int *hits;
  912.       register int i, j, k;
  913.       Entries cur, cmp;
  914. !     char *curtag, *curvalue;
  915.   
  916.       hits = (int *)malloc(num * sizeof(int));
  917.       cur = dbs[0];
  918.       for (i = 0; i < cur.used; i++) {
  919.       curtag = cur.entry[i].tag;
  920. +     curvalue = cur.entry[i].value;
  921.       for (j = 1; j < num; j++) {
  922.           cmp = dbs[j];
  923.           for (k = 0; k < cmp.used; k++) {
  924. !         if (cmp.entry[k].usable &&
  925. !             !strcmp(curtag, cmp.entry[k].tag) &&
  926. !             !strcmp(curvalue, cmp.entry[k].value))
  927. !         {
  928.               hits[j] = k;
  929.               break;
  930.           }
  931. *** /tmp/da19377    Fri Apr 24 13:53:58 1992
  932. --- mit/clients/xterm/menu.c    Fri Apr 24 13:53:57 1992
  933. ***************
  934. *** 1,4 ****
  935. ! /* $XConsortium: menu.c,v 1.60 91/06/25 19:49:28 gildea Exp $ */
  936.   /*
  937.   Copyright 1989 Massachusetts Institute of Technology
  938.   
  939. --- 1,4 ----
  940. ! /* $XConsortium: menu.c,v 1.61 92/04/20 18:46:39 rws Exp $ */
  941.   /*
  942.   Copyright 1989 Massachusetts Institute of Technology
  943.   
  944. ***************
  945. *** 325,331 ****
  946.       ReverseVideo (term);
  947.       screen->grabbedKbd = FALSE;
  948.       } else {
  949. !     if (XGrabKeyboard (screen->display, term->core.parent->core.window,
  950.                  True, GrabModeAsync, GrabModeAsync, time)
  951.           != GrabSuccess) {
  952.           XBell (screen->display, 100);
  953. --- 325,331 ----
  954.       ReverseVideo (term);
  955.       screen->grabbedKbd = FALSE;
  956.       } else {
  957. !     if (XGrabKeyboard (screen->display, term->core.window,
  958.                  True, GrabModeAsync, GrabModeAsync, time)
  959.           != GrabSuccess) {
  960.           XBell (screen->display, 100);
  961. *** /tmp/da19399    Fri Apr 24 13:54:00 1992
  962. --- mit/util/scripts/Imakefile    Fri Apr 24 13:53:59 1992
  963. ***************
  964. *** 1,12 ****
  965. ! XCOMM $XConsortium: Imakefile,v 1.21 91/07/29 19:59:55 gildea Exp $
  966.   #if UseCCMakeDepend
  967. ! MDEP_DIR = makedepend
  968.   #endif
  969. !          PROGRAMS = xmkmf $(MDEP_DIR) mergelib
  970.   
  971.   all:: $(PROGRAMS)
  972.   
  973. ! CppScriptTarget(xmkmf,xmkmf.cpp,-DCONFIGDIRSPEC=-I$(CONFIGDIR),$(ICONFIGFILES))
  974.   #if UseCCMakeDepend
  975.   CppScriptTarget(makedepend,mdepend.cpp,-DPREPROC='"'"$(PREPROCESSCMD)"'"',$(ICONFIGFILES))
  976.   #endif
  977. --- 1,12 ----
  978. ! XCOMM $XConsortium: Imakefile,v 1.23 92/04/14 18:46:59 rws Exp $
  979.   #if UseCCMakeDepend
  980. ! MDEP_PROG = makedepend
  981.   #endif
  982. !          PROGRAMS = xmkmf $(MDEP_PROG) mergelib
  983.   
  984.   all:: $(PROGRAMS)
  985.   
  986. ! CppScriptTarget(xmkmf,xmkmf.cpp,-DCONFIGDIRSPEC='"'"-I$(CONFIGDIR)"'"',$(ICONFIGFILES))
  987.   #if UseCCMakeDepend
  988.   CppScriptTarget(makedepend,mdepend.cpp,-DPREPROC='"'"$(PREPROCESSCMD)"'"',$(ICONFIGFILES))
  989.   #endif
  990.